package com.dcy.daily.skill.rabbitMQ.official.workQueue;

import com.dcy.daily.skill.rabbitMQ.official.utils.MQConnectUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;

/**
 * Work Queue
 * 生成者
 * RabbitMQ 的学习例子（https://www.rabbitmq.com/tutorials/tutorial-two-java.html）。
 * 使用该例子的时候，需要手动下载连接MQ的Java客户端（amqp-client-5.7.1.jar），此jar包
 * 为手动添加，并没使用maven，在启动的时候可手动添加，后续随着学习的深入可换成maven依赖，
 * 或者使用Springboot来自动装配。
 *
 * @author duanchunyu
 * @version 1.0.0
 * @createTime 2021年07月15日 15:40
 */
public class NewTask {
    private final static String QUEUE_NAME = "task_queue";

    public static void main(String[] args) {
        String message = String.join(" ",args);
        try (Connection connection = MQConnectUtil.getConnection()) {
            Channel channel = connection.createChannel();
            //声明Queue（Queue持久化）
            boolean durable = true;
            channel.queueDeclare(QUEUE_NAME, durable, false, false, null);
            channel.basicQos(1);
            //发送消息，且设置消息持久化
            channel.basicPublish("", QUEUE_NAME, MessageProperties.PERSISTENT_BASIC, message.getBytes());
            System.out.println(" [x] Sent '" + message + "'");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
